home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-11-25 | 512 b | 29 lines | [TEXT/PICN] |
- # Assign Program Input to pool.dat before running.
- #
- procedure main()
- pool := set([read()]) | stop("no seed")
- every 1 to 4000 do {
- write(x := Extract(pool))
- every insert(pool,scramble(x))
- }
- end
-
- procedure Extract(s)
- local x
- delete(s,x := ?s) | fail
- return x
- end
-
- procedure scramble(s)
- suspend reverse(s[1:-1]) | select(s)
- end
-
- procedure select(s)
- local t
- t := ""
- if *s > 1 then every 1 to ?*s do
- t ||:= ?s
- else t := repl(s,?10)
- suspend t | reverse(t)
- end
-